using Microsoft.VisualStudio.Package;

namespace Microsoft.WowAddonStudio.Lua.LanguageService.Model
{
    public struct TokenDefinition
    {
        private readonly TokenType type;
        private readonly TokenColor color;
        private readonly TokenTriggers triggers;

        /// <summary>
        /// Initializes a new instance of the <see cref="TokenDefinition"/> struct.
        /// </summary>
        /// <param name="type">The type of the token.</param>
        /// <param name="color">The color of the token.</param>
        /// <param name="triggers">The triggers the token is associated with.</param>
        public TokenDefinition(TokenType type, TokenColor color, TokenTriggers triggers)
        {
            this.type = type;
            this.color = color;
            this.triggers = triggers;
        }

        /// <summary>
        /// Gets the type of the token.
        /// </summary>
        public TokenType Type
        {
            get { return type; }
        }

        /// <summary>
        /// Gets the color of the token.
        /// </summary>
        public TokenColor Color
        {
            get { return color; }
        }

        /// <summary>
        /// Gets the triggers associated with the token.
        /// </summary>
        public TokenTriggers Triggers
        {
            get { return triggers; }
        }
    }
}